package org.oimwrapper.connectors.internal;

import com.thortech.xl.orb.dataaccess.*;
import java.io.*;
import java.math.*;
import java.net.*;
import java.sql.*;
import java.util.*;

/**
 * JDBC result set interface into OIM.
 * 
 * THIS IS AN INTERNAL CLASS AND SHOULD NOT BE USED DIRECTLY.
 */
final class OIMDBResults implements ResultSet {
	
	/**
	 * The position in terms of rows.
	 */
	protected int position;
	
	/**
	 * The underlying OIM data object.
	 */
	protected tcDataSetData data;
	
	/**
	 * The calling statement;
	 */
	protected Statement caller;
	
	/**
	 * A map of column names to indexes.
	 */
	protected Map metaData;
	
	/**
	 * Default Constructor.
	 * 
	 * @param Data The source OIM data object.
	 */
	protected OIMDBResults(tcDataSetData Data, OIMDBStatement Caller) {
		position =  -1;
		data = Data;
		caller = Caller;
		metaData = new HashMap();
		tcColumn[] columns = data.ioMetaData;
		for (int i = 0; i < columns.length; i++) {
			metaData.put(columns[i].isName.toUpperCase(), new Integer(i));
		}
	}

	/**
	 * Moves the position to an absolute value.
	 * 
	 * @param Position
	 * @return <code>true</code> if the move was successful, or <code>false</code>
	 *         if the requested move is out of bounds.
	 * @exception SQLException
	 */
	public boolean absolute(int Position) throws SQLException {
		if (Position <= data.inEndRow) {
			position = Position - 1;
			return true;
		} else {
			return false;
		}
	}

	/**
	 * Moves the current position to the end.
	 * 
	 * @exception SQLException
	 */
	public void afterLast() throws SQLException {
		position = data.ioData.length;
	}

	/**
	 * Moves the current position to the begining.
	 * 
	 * @exception SQLException
	 */
	public void beforeFirst() throws SQLException {
		position = -1;
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void cancelRowUpdates() throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void clearWarnings() throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * Closes the database connection. This does nothing, as the OIM database connection
	 * can never be fully closed.
	 * 
	 * @exception SQLException
	 */
	public void close() throws SQLException { ; }

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void deleteRow() throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * Maps a column name to a coolumn index.
	 * 
	 * @param Column The column name.
	 * @return The column index.
	 * @exception SQLException
	 */
	public int findColumn(String Column) throws SQLException {
		Integer index = (Integer) metaData.get(Column.toUpperCase());
		if (index != null) {
			return index.intValue();
		}
		throw new SQLException("Column '" + Column + "' was not found in the result set.");
	}

	/**
	 * Moves the current position to the begining.
	 * 
	 * @return <code>true</code> if the cursor is on a valid row, or <code>false</code>
	 *         if not.
	 * @exception SQLException
	 */
	public boolean first() throws SQLException {
		if (data.ioData.length != 0) {
			position = 0;
			return true;
		} else {
			return false;
		}
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Array getArray(int Index) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Array getArray(String Column) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public InputStream getAsciiStream(int Index) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public InputStream getAsciiStream(String Column) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public BigDecimal getBigDecimal(int Index) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public BigDecimal getBigDecimal(int Index, int Scale) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public BigDecimal getBigDecimal(String Column) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public BigDecimal getBigDecimal(String Column, int Scale) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public InputStream getBinaryStream(int Index) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public InputStream getBinaryStream(String Column) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Blob getBlob(int Index) throws SQLException {
		throw new UnsupportedOperationException("Not supported yet.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Blob getBlob(String Column) throws SQLException {
		throw new UnsupportedOperationException("Not supported yet.");
	}

	/**
	 * Gets a value.
	 * 
	 * @param Index The column index to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public boolean getBoolean(int Index) throws SQLException {
		return ((Long) data.ioData[position].ioValues[Index]).longValue() == 1L;
	}

	/**
	 * Gets a value.
	 * 
	 * @param Column The column to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public boolean getBoolean(String Column) throws SQLException {
		return getBoolean(findColumn(Column));
	}

	/**
	 * Gets a value.
	 * 
	 * @param Index The column index to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public byte getByte(int Index) throws SQLException {
		return ((Long) data.ioData[position].ioValues[Index]).byteValue();
	}

	/**
	 * Gets a value.
	 * 
	 * @param Column The column to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public byte getByte(String Column) throws SQLException {
		return getByte(findColumn(Column));
	}

	/**
	 * Gets a value.
	 * 
	 * @param Index The column index to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public byte[] getBytes(int Index) throws SQLException {
		return (byte[]) data.ioData[position].ioValues[Index];
	}

	/**
	 * Gets a value.
	 * 
	 * @param Column The column to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public byte[] getBytes(String Column) throws SQLException {
		return getBytes(findColumn(Column));
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Reader getCharacterStream(int Index) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Reader getCharacterStream(String Column) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Clob getClob(int Index) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Clob getClob(String Column) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * Gets the concurrency for this result set.
	 * 
	 * @return The concurrency for this result set.
	 * @exception SQLException
	 */
	public int getConcurrency() throws SQLException {
		return ResultSet.CONCUR_READ_ONLY;
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public String getCursorName() throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * Gets a value.
	 * 
	 * @param Index The column index to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public java.sql.Date getDate(int Index) throws SQLException {
		return (java.sql.Date) data.ioData[position].ioValues[Index];
	}

	/**
	 * Gets a value.
	 * 
	 * @param Column The column to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public java.sql.Date getDate(String Column) throws SQLException {
		return getDate(findColumn(Column));
	}

	/**
	 * Gets a value.
	 * 
	 * @param Index The column index to get the value from.
	 * @param Cal The calendar to use to specify the timezone.
	 * @return The value.
	 * @exception SQLException
	 */
	public java.sql.Date getDate(int Index, Calendar Cal) throws SQLException {
		Cal.setTime(getDate(Index));
		return new java.sql.Date(Cal.getTimeInMillis());
	}

	/**
	 * Gets a value.
	 * 
	 * @param Column The column to get the value from.
	 * @param Cal The calendar to use to specify the timezone.
	 * @return The value.
	 * @exception SQLException
	 */
	public java.sql.Date getDate(String Column, Calendar Cal) throws SQLException {
		return getDate(findColumn(Column), Cal);
	}

	/**
	 * Gets a value.
	 * 
	 * @param Index The column index to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public double getDouble(int Index) throws SQLException {
		return ((Double) data.ioData[position].ioValues[Index]).doubleValue();
	}

	/**
	 * Gets a value.
	 * 
	 * @param Column The column to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public double getDouble(String Column) throws SQLException {
		return getDouble(findColumn(Column));
	}

	/**
	 * Gets the fetch direction.
	 * 
	 * @return The fetch direction.
	 * @exception SQLException
	 */
	public int getFetchDirection() throws SQLException {
		return ResultSet.FETCH_FORWARD;
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public int getFetchSize() throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * Gets a value.
	 * 
	 * @param Index The column index to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public float getFloat(int Index) throws SQLException {
		return ((Float) data.ioData[position].ioValues[Index]).floatValue();
	}
	
	/**
	 * Gets a value.
	 * 
	 * @param Column The column to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public float getFloat(String Column) throws SQLException {
		return getFloat(findColumn(Column));
	}

	/**
	 * Gets a value.
	 * 
	 * @param Index The column index to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public int getInt(int Index) throws SQLException {
		return ((Long) data.ioData[position].ioValues[Index]).intValue();
	}

	/**
	 * Gets a value.
	 * 
	 * @param Column The column to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public int getInt(String Column) throws SQLException {
		return getInt(findColumn(Column));
	}

	/**
	 * Gets a value.
	 * 
	 * @param Index The column index to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public long getLong(int Index) throws SQLException {
		return ((Long) data.ioData[position].ioValues[Index]).longValue();
	}

	/**
	 * Gets a value.
	 * 
	 * @param Column The column to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public long getLong(String Column) throws SQLException {
		return getLong(findColumn(Column));
	}

	/**
	 * Gets the meta data for the result set.
	 * 
	 * @return The maeta data for the result set.
	 * @exception SQLException
	 */
	public ResultSetMetaData getMetaData() throws SQLException {
		return new OIMDBMetaData(data.ioMetaData);
	}

	/**
	 * Gets a value.
	 * 
	 * @param Index The column index to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public Object getObject(int Index) throws SQLException {
		return data.ioData[position].ioValues[Index];
	}

	/**
	 * Gets a value.
	 * 
	 * @param Column The column to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public Object getObject(String Column) throws SQLException {
		return getObject(findColumn(Column));
	}

	/**
	 * Gets a value.
	 * 
	 * @param Index The column index to get the value from.
	 * @param TypeMap The type mapping for connection.
	 * @return The value.
	 * @exception SQLException
	 */
	public Object getObject(int Index, Map TypeMap) throws SQLException {
		return getObject(Index);
	}

	/**
	 * Gets a value.
	 * 
	 * @param Column The column to get the value from.
	 * @param TypeMap The type mapping for connection.
	 * @return The value.
	 * @exception SQLException
	 */
	public Object getObject(String Column, Map TypeMap) throws SQLException {
		return getObject(findColumn(Column), TypeMap);
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Ref getRef(int Index) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Ref getRef(String Column) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * Gets the current row number.
	 * 
	 * @return The current row number.
	 * @exception SQLException
	 */
	public int getRow() throws SQLException {
		return position;
	}

	/**
	 * Gets a value.
	 * 
	 * @param Index The column index to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public short getShort(int Index) throws SQLException {
		return ((Long) data.ioData[position].ioValues[Index]).shortValue();
	}

	/**
	 * Gets a value.
	 * 
	 * @param Column The column to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public short getShort(String Column) throws SQLException {
		return getShort(findColumn(Column));
	}

	/**
	 * Gets the associated Statement.
	 * 
	 * @return The associated statement.
	 * @exception SQLException
	 */
	public Statement getStatement() throws SQLException {
		return caller;
	}

	/**
	 * Gets a value.
	 * 
	 * @param Index The column index to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public String getString(int Index) throws SQLException {
		return (String) data.ioData[position].ioValues[Index];
	}

	/**
	 * Gets a value.
	 * 
	 * @param Column The column to get the value from.
	 * @return The value.
	 * @exception SQLException
	 */
	public String getString(String Column) throws SQLException {
		return getString(findColumn(Column));
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Time getTime(int Index) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Time getTime(String Column) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Time getTime(int Index, Calendar Cal) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Time getTime(String Column, Calendar Cal) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Timestamp getTimestamp(int Index) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Timestamp getTimestamp(String Column) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Timestamp getTimestamp(int Index, Calendar Cal) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public Timestamp getTimestamp(String Column, Calendar Cal) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * Gets the type of the result set.
	 * 
	 * @return The type of the result set.
	 * @exception SQLException
	 */
	public int getType() throws SQLException {
		return ResultSet.TYPE_SCROLL_INSENSITIVE;
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public URL getURL(int Index) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public URL getURL(String Column) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public InputStream getUnicodeStream(int Index) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public InputStream getUnicodeStream(String Column) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * Gets the warnings from the database connection.
	 * 
	 * @return OIM does not generate specific database warnings, so this will always
	 *         be null.
	 * @exception SQLException
	 */
	public SQLWarning getWarnings() throws SQLException {
		return null;
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void insertRow() throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * Indicates if the position is after the last row.
	 * 
	 * @return <code>true</code> if the position is after the last row, or <code>false</code>
	 *         if not.
	 * @exception SQLException
	 */
	public boolean isAfterLast() throws SQLException {
		return position > data.ioData.length - 1;
	}

	/**
	 * Indicates if the position is before the first row.
	 * 
	 * @return <code>true</code> if the position is before the first row, or <code>false</code>
	 *         if not.
	 * @exception SQLException
	 */
	public boolean isBeforeFirst() throws SQLException {
		return position < 0;
	}

	/**
	 * Indicates if the position is at the first row.
	 * 
	 * @return <code>true</code> if the position is at the first row, or <code>false</code>
	 *         if not.
	 * @exception SQLException
	 */
	public boolean isFirst() throws SQLException {
		return position == 0;
	}

	/**
	 * Indicates if the position is at the last row.
	 * 
	 * @return <code>true</code> if the position is at the last row, or <code>false</code>
	 *         if not.
	 * @exception SQLException
	 */
	public boolean isLast() throws SQLException {
		return position == data.ioData.length - 1;
	}

	/**
	 * Moves the current position to the end.
	 * 
	 * @return <code>true</code> if the cursor is on a valid row, or <code>false</code>
	 *         if not.
	 * @exception SQLException
	 */
	public boolean last() throws SQLException {
		if (data.ioData.length > 0) {
			position = data.ioData.length - 1;
			return true;
		} else {
			return false;
		}
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void moveToCurrentRow() throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void moveToInsertRow() throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * Moves the position forward one row.
	 * 
	 * @return <code>true</code> if the move is possible, or <code>false</code>
	 *         if it is not.
	 * @exception SQLException
	 */
	public boolean next() throws SQLException {
		return relative(1);
	}

	/**
	 * Moves the position back one row.
	 * 
	 * @return <code>true</code> if the move is possible, or <code>false</code>
	 *         if it is not.
	 * @exception SQLException
	 */
	public boolean previous() throws SQLException {
		return relative(-1);
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void refreshRow() throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * Moves the position the specified number of rows.
	 * 
	 * @param Ammount The ammount to move the position by.
	 * @return <code>true</code> if the move is possible, or <code>false</code>
	 *         if it is not.
	 * @exception SQLException
	 */
	public boolean relative(int Ammount) throws SQLException {
		if (position + Ammount < data.ioData.length && position + Ammount >= 0) {
			position += Ammount;
			return true;
		} else {
			return false;
		}
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public boolean rowDeleted() throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public boolean rowInserted() throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public boolean rowUpdated() throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void setFetchDirection(int Direction) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void setFetchSize(int Size) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateArray(int Index, Array Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateArray(String Column, Array Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateAsciiStream(int Index, InputStream Value, int Size) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateAsciiStream(String Column, InputStream Value, int Stream) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateBigDecimal(int Index, BigDecimal Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateBigDecimal(String Column, BigDecimal Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateBinaryStream(int Index, InputStream Value, int Size) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateBinaryStream(String Column, InputStream Value, int Size) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateBlob(int Index, Blob Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateBlob(String Column, Blob Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateBoolean(int Index, boolean Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateBoolean(String Column, boolean Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateByte(int Index, byte Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateByte(String Column, byte Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateBytes(int Index, byte[] Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateBytes(String Column, byte[] Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateCharacterStream(int Index, Reader Value, int Size) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateCharacterStream(String Column, Reader Value, int Size) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateClob(int Index, Clob Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateClob(String Column, Clob Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateDate(int Index, java.sql.Date Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateDate(String Column, java.sql.Date Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateDouble(int Index, double Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateDouble(String Column, double Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateFloat(int Index, float Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateFloat(String Column, float Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateInt(int Index, int Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateInt(String Column, int Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateLong(int Index, long Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateLong(String Column, long Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateNull(int Index) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateNull(String Column) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateObject(int Index, Object Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateObject(int Index, Object Value, int Type) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateObject(String Column, Object Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateObject(String Column, Object Value, int Type) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateRef(int Index, Ref Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateRef(String Column, Ref Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateRow() throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateShort(int Index, short Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateShort(String Column, short Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateString(int Index, String Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateString(String Column, String Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateTime(int Index, Time Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateTime(String Column, Time Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateTimestamp(int Column, Timestamp Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public void updateTimestamp(String Column, Timestamp Value) throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

	/**
	 * This method is not supported.
	 * 
	 * @exception SQLException
	 */
	public boolean wasNull() throws SQLException {
		throw new UnsupportedOperationException("Not supported.");
	}

    @Override
    public RowId getRowId(int columnIndex) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public RowId getRowId(String columnLabel) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateRowId(int columnIndex, RowId x) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateRowId(String columnLabel, RowId x) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public int getHoldability() throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean isClosed() throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateNString(int columnIndex, String nString) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateNString(String columnLabel, String nString) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateNClob(int columnIndex, NClob nClob) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateNClob(String columnLabel, NClob nClob) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public NClob getNClob(int columnIndex) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public NClob getNClob(String columnLabel) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public SQLXML getSQLXML(int columnIndex) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public SQLXML getSQLXML(String columnLabel) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateSQLXML(int columnIndex, SQLXML xmlObject) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateSQLXML(String columnLabel, SQLXML xmlObject) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public String getNString(int columnIndex) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public String getNString(String columnLabel) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public Reader getNCharacterStream(int columnIndex) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public Reader getNCharacterStream(String columnLabel) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateNCharacterStream(int columnIndex, Reader x, long length) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateNCharacterStream(String columnLabel, Reader reader, long length) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateAsciiStream(int columnIndex, InputStream x, long length) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateBinaryStream(int columnIndex, InputStream x, long length) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateCharacterStream(int columnIndex, Reader x, long length) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateAsciiStream(String columnLabel, InputStream x, long length) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateBinaryStream(String columnLabel, InputStream x, long length) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateCharacterStream(String columnLabel, Reader reader, long length) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateBlob(int columnIndex, InputStream inputStream, long length) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateBlob(String columnLabel, InputStream inputStream, long length) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateClob(int columnIndex, Reader reader, long length) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateClob(String columnLabel, Reader reader, long length) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateNClob(int columnIndex, Reader reader, long length) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateNClob(String columnLabel, Reader reader, long length) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateNCharacterStream(int columnIndex, Reader x) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateNCharacterStream(String columnLabel, Reader reader) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateAsciiStream(int columnIndex, InputStream x) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateBinaryStream(int columnIndex, InputStream x) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateCharacterStream(int columnIndex, Reader x) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateAsciiStream(String columnLabel, InputStream x) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateBinaryStream(String columnLabel, InputStream x) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateCharacterStream(String columnLabel, Reader reader) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateBlob(int columnIndex, InputStream inputStream) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateBlob(String columnLabel, InputStream inputStream) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateClob(int columnIndex, Reader reader) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateClob(String columnLabel, Reader reader) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateNClob(int columnIndex, Reader reader) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void updateNClob(String columnLabel, Reader reader) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public <T> T unwrap(Class<T> iface) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public boolean isWrapperFor(Class<?> iface) throws SQLException {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}